<?php
require_once('./roots.php');

require_once('db/dbinterface.php');
require_once('AES.php');
require_once('AES.class.php');
require('/var/RBAC_CONFIG.php');


class user{



	public function Insertar_usuario($login,$password,$creador){
                
		$dbinterface = new dbinterface();//iniciar conexion con la interfaz de base de datos
		$dbinterface->connect();
                $pas=md5($password);
                global $cypherPass;
                //var_dump($cypherPass);
                //var_dump($pas);
                //echo("recibi esto ".$login." ".$password." ".$creador." y pass con md5: ".$pas." y el pass de cifrado es ".$cipherPass."" );
                $aes=new AES($cypherPass);
                $newPass=$aes->encrypt($pas);
                $newPass=base64_encode($newPass);
                //$newPass=AESEncryptCtr($pas, $cypherPass, 256);
		//echo("salida cofrada y encodificada ".$newPass."");
                
                $result=$dbinterface->insertar("rbac_user",array('name'=>$login,'login'=>$login,'password'=>"".$newPass."",'status'=>0),$creador);

                // Agregado por GM
                // Creacion del usuario como administrador de las
                // tablas en la bd.
                if ($result){
                	$result2=$dbinterface->crear_admin_manejador($login,$password);
                }
                //$oldPass=AESDecryptCtr($newPass, $cypherPass, 256);
                $newPass=base64_decode($newPass);
                $oldPass=$aes->decrypt($newPass);
                //echo("password decodificado y descifrado ".$oldPass."");

		return $result;

	}

	function Seleccionar_usuario($login, $buscador){

		$dbinterface = new dbinterface();//iniciar conexion con la interfaz de base de datos
		$dbinterface->connect();
		
		$result=$dbinterface->seleccionar("rbac_user",array('login' => $login),$buscador);

		return $result;



	}

	function Seleccionar_usuario1($login, $buscador){

		$dbinterface = new dbinterface();//iniciar conexion con la interfaz de base de datos
		$dbinterface->connect();
		
		$result=$dbinterface->seleccionar1("rbac_user",array('login' => $login),$buscador);

		return $result;



	}

	public function Actualizar_usuario($login, $nuevoLogin, $nuevoPassword, $nuevoEstado, $modificador){
	

		$result=NULL;
		$dbinterface = new dbinterface();//iniciar conexion con lam interfaz de base de datos
		$dbinterface->connect();
		$olduser=$this->Seleccionar_usuario($login,$modificador);

		if ($olduser==FALSE)

			$result= FALSE;

		else{

			if ($olduser==NULL)

			$result= NULL;

			else{

				//var_dump($olduser);
                                global $cypherPass;
								
								$pass=md5($nuevoPassword);                                
								$aes=new AES($cypherPass);
				                $newPass=$aes->encrypt($pass);
                				$newPass=base64_encode($newPass);
                                $result=$dbinterface->modificar("rbac_user",array('login' => $olduser[0]['login'], 'password'=>$olduser[0]['password'], 'status'=>$olduser[0]['status']), array('login' => $nuevoLogin, 'password'=>"".$newPass."", 'status'=>$nuevoEstado), $modificador);
								
			}

		}	

		return $result;

	}

	public function Eliminar_usuario($login,$eliminador){

		$result=NULL;

		$dbinterface = new dbinterface();//iniciar conexion con lam interfaz de base de datos
		$dbinterface->connect();
		//var_dump($login);
                $olduser= $this->Seleccionar_usuario($login,$eliminador);
                //var_dump($olduser);
		if ($olduser==FALSE)

			$result=FALSE;

		else{

			if ($olduser==NULL)

			$result= NULL;

			else{

				$result=$dbinterface->eliminar("rbac_user",array('login' => $login), $eliminador);

			}

		}	

		return $result;

	}



}
?>
